//公共模块

const path = require("path");

const { DefinePlugin } = require("webpack");

const VueLoaderPlugin = require("vue-loader/lib/plugin");

module.exports = {
  // 打包入口文件

  entry: "./src/main.js",

  // 输出文件

  output: {
    path: path.resolve(__dirname, "dist"),

    filename: "bundle.js",
  },

  module: {
    rules: [
      // 代码检测

      {
        test: /\.(vue|js)$/,

        exclude: /node_modules/,

        use: "eslint-loader",

        enforce: "pre",
      },

      // 解析和转换.vue文件

      {
        test: /\.vue$/,

        use: "vue-loader",
      },

      // 把es6已经新特性转换成es5

      {
        test: /\.js$/,

        exclude: /node_modules/,

        use: "babel-loader",
      },

      // 解析和转换.png文件

      {
        test: /\.png$/,

        use: {
          loader: "url-loader",

          // 大于10k 直接走file-loader

          options: {
            limit: 10 * 1024, //10k

            esModule: false,
          },
        },
      },
    ],
  },

  plugins: [
    // vue加载器插件

    new VueLoaderPlugin(),

    // 配置全局变量

    new DefinePlugin({
      //定义BASE_URL index.html中需要使用

      BASE_URL: "/public/",
    }),
  ],
};
